home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 20
/
Cream of the Crop 20 (Terry Blount) (1996).iso
/
comm
/
phmkr17a.zip
/
SETUP.MS_
/
SETUP.bin
Wrap
Text File
|
1996-06-15
|
21KB
|
725 lines
'**************************************************************************
'* FoxPro/Windows Installation
'**************************************************************************
'$INCLUDE 'setup.inc'
DECLARE FUNCTION GetProgMgrGrps LIB "mscuistf.dll" AS INTEGER
DECLARE FUNCTION QuietConfigUpdate LIB "mscuistf.dll" AS INTEGER
DECLARE FUNCTION CanFindConfigSys LIB "mscuistf.dll" AS INTEGER
DECLARE FUNCTION CalcListSize LIB "mscuistf.dll" AS LONG
DECLARE FUNCTION WindowWidth LIB "mscuistf.dll" (iWind%) AS INTEGER
DECLARE FUNCTION WindowHeight LIB "mscuistf.dll" (iWind%) AS INTEGER
DECLARE FUNCTION InsertFile LIB "mscuistf.dll" (szDestFile$, szSourceFile$) AS INTEGER
DECLARE FUNCTION Spawn LIB "mscuistf.dll" (szCommand$, szDir$) AS INTEGER
''Local functions and procedures.
DECLARE SUB AddToPM
DECLARE SUB ConfirmQuit
DECLARE SUB CreateCopyList
DECLARE SUB DoRestart
DECLARE SUB Install
DECLARE SUB GetPathInfo
DECLARE SUB GetPathGrpInfo
DECLARE SUB GetUserDefaults
DECLARE SUB UpdateConfig
DECLARE SUB UpdateINI
DECLARE FUNCTION ConfirmNameOrg () AS STRING
DECLARE FUNCTION EnoughSpace () AS STRING
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION SectionSize (szSection$) AS INTEGER
DECLARE FUNCTION WarnBadPath () AS STRING
''Dialog ID's
CONST ASKQUIT = 200 ''Is the user certain they want to quit?
CONST BADINI = 4500 ''We couldn't read setup.ini.
CONST BADMODE = 2100 ''We aren't in Enhanced mode.
CONST BADNAME = 7700 ''The user has to enter a name.
CONST BADPATH = 6400 ''The target directory can't be written to.
CONST BADPATH_FORCED = 6200 ''The target directory is bad, but the user can't change it.
CONST BILLBOARD = 20000 ''Used to hold billboard bitmaps.
CONST CANTADDRSC = 4700 ''Can't add resource to foxprow.exe
CONST CANTFIND = 3900 ''Can't find config.sys.
CONST CANTQUIT = 2300 ''Couldn't exit Windows.
CONST CANTSPAWN = 6500 ''Couldn't run optional stuff.
CONST CANTUPDATE = 3500 ''Coulsn't update config.sys.
CONST CANTWRITETOFP = 5200 ''FoxPro is in a read only directory.
CONST CONFIRMINFO = 7300 ''Is the name and organization ok?
CONST DESTPATH = 5300 ''Get target directory without a group.
CONST DESTPATHGROUP = 5400 ''Get target directory and group.
CONST DISKFULL = 5500 ''Not enough disk space is available.
CONST DISKFULL_BACK = 6100 ''Not enough disk space is available, change path?
CONST DISKWINFULL = 5600 ''Not enough space on Windows drive.
CONST EDITCONFIG = 2700 ''Review changes to config.sys
CONST EDITMODE = 3800 ''Select method of updating config.sys
CONST EDITOK = 3700 ''We updated config.sys
CONST EXITFAILURE = 5700 ''We are quiting due to an error.
CONST EXITNOICON = 2800 ''We installed, but don't have an icon.
CONST EXITQUIT = 5800 ''We were forced to quit by the user.
CONST EXITSUCCESS = 5900 ''We have successfully finished.
CONST GETNAMEORG = 1300 ''Get the user's name and organization.
CONST NOPROD = 5100 ''Path to foxprow.exe is bad.
CONST NOT386 = 1800 ''Machine is less than a 386SX.
CONST OPTIONS = 800 ''Components to install.
CONST REINSTALL = 2000 ''Copy disincentive message.
CONST RESTARTWIN = 2200 ''Warn before restarting windows.
CONST WAITADDRSC = 4900 ''Wait while adding FOXT.EXE.
CONST WAITINI = 6600 ''Wait while updating INI files.
CONST WAITSPACE = 6700 ''Wait while getting free disk space.
CONST MSGRAPH = 1
CONST APPLICATION = 2
CONST SYSFILES = 3
CONST CUIDLL$ = "mscuistf.dll" ''The .DLL containing our dialog routines.
CONST DEFAULT_TITLE$ = "Setup"
CONST LOGO = 2 ''Logo Bitmap ID.
CONST LASTRESORT$ = "Setup was damaged. Please try a new set of disks."
CONST LASTTITLE$ = "Setup Error"
CONST MINFILES% = 40
CONST NO = 0
CONST NOGROUP$ = "- NONE -" ''Group name which means don't create a group.
CONST README$ = "README.TXT"
CONST READ_DESC$ = "Read Me"
CONST YES = 1
GLOBAL DEST$ ''Default destination directory.
GLOBAL fGRAPH% ''Flag indicating if the graph runtime is to be installed.
GLOBAL fWIN31% ''Flag indicating if we are running under 3.1 or later.
GLOBAL GROUP$ ''Default destination group.
GLOBAL MODE$ ''Determines whether we let the user change path and/or group.
GLOBAL MSDEST$ ''MS Graph runtime location.
GLOBAL PM_EXE$ ''Exe to add to the PM.
GLOBAL PM_DESCRIPT$ ''Label for the PM.
GLOBAL QUIT_PROG$ ''Program to execute when we quit.
GLOBAL SRCDIR$ ''Location of install files.
GLOBAL szInf$ ''Location of the inf file.
GLOBAL WINDIR$ ''Windows directory.
GLOBAL WINSYSDIR$ ''Windows system directory.
INIT:
ON ERROR GOTO QUIT
DEST$ = "c:\foxprow"
DLG% = 400
fGRAPH% = NO
GROUP$ = "FoxPro for Windows"
MODE$ = "NO"
MSDEST$ = MakePath(GetWindowsDir(), "msapps")
PMGROUPS% = 0
QUIT_PROG$ = ""
SRCDIR$ = GetSymbolValue("STF_SRCDIR")
WINDIR$ = GetWindowsDir()
WINSYSDIR$ = GetWindowsSysDir()
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
END IF
ReadInfFile szInf$
fGRAPH% = DoesIniSectionExist(szInf$, "MSGraph")
SetSymbolValue "NoGroup", NOGROUP$
'' SetBitmap CUIDLL$, LOGO
''
'' Make sure we have at least a 386SX.
''
IF GetProcessorType() < 3 THEN
PROCESSOR:
sz$ = UIStartDlg(CUIDLL$, NOT386, "FInfo0DlgProc", 0, "")
IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
ConfirmQuit
GOTO PROCESSOR
END IF
UIPop 1
END
END IF
''
'' Warn the user if we are not in Enhanced mode.
''
IF GetWindowsMode() < 2 THEN
ENHANCED:
sz$ = UIStartDlg(CUIDLL$, BADMODE, "FInfoDlgProc", 0, "")
IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
ConfirmQuit
GOTO ENHANCED
ELSE
UIPop 1
END IF
END IF
''
'' Get the user's choices for window titles, default directories, etc.
''
GetUserDefaults
''
'' For our own use, see if we are running on a version later than 3.0.
''
fWIN31% = YES
IF GetWindowsMajorVersion() < 3 THEN
fWIN31% = NO
ELSEIF GetWindowsMajorVersion() = 3 AND GetWindowsMinorVersion() = 0 THEN
fWIN31% = NO
END IF
''
'' Get a list of PM groups if possible.
''
IF fWIN31% = YES THEN
PMGROUPS% = GetProgMgrGrps()
END IF
''
'' Have the user specify where to put the product. (Including the group if
'' we can get the info.)
''
GETTARGETINFO:
IF MODE$ <> "YES" THEN
IF fWIN31% = NO OR GetListLength("ListItemsIn") = 0 OR MODE$ = "GROUP ONLY" THEN
GetPathInfo
ELSE
GetPathGrpInfo
END IF
ELSE
IF IsDirWritable(DEST$) = NO THEN
sz$ = UIStartDlg(CUIDLL$, BADPATH_FORCED, "FInfoDlgProc", 0, "")
ERROR STFERR
END IF
END IF
IF EnoughSpace() = "BACK" THEN
GOTO GETTARGETINFO
END IF
''
'' Try to gaurantee that FILES are at least a minimum value.
''
UpdateConfig
Install
IF ERR = STFQUIT THEN
DLG% = EXITQUIT
ELSE
DLG% = EXITSUCCESS
END IF
GOTO QUITL1
QUIT:
UIPopAll
IF ERR = STFPROGMAN THEN
DLG% = EXITNOICON
ELSEIF ERR = STFQUIT THEN
DLG% = EXITQUIT
ELSE
DLG% = EXITFAILURE
END IF
QUITL1:
ON ERROR GOTO TOAST
IF DLG% = EXITSUCCESS AND LEN(QUIT_PROG$) <> 0 THEN
QUIT_PROG$ = MakePath(DEST$, QUIT_PROG$)
IF (MID$(DEST$, LEN(DEST$), 1) = "\") THEN
y$ = MID$(DEST$, 1, LEN(DEST$)-1)
ELSE
y$ = DEST$
END IF
x% = Spawn(QUIT_PROG$, y$)
IF x% <> 0 THEN
SetSymbolValue "EXE_NAME", QUIT_PROG$
sz$ = UIStartDlg(CUIDLL$, DLG%, "FVarStringDlgProc", 0, "")
UIPop 1
DLG% = EXITFAILURE
ELSE
UIPop ALL
END
END IF
END IF
QUITL2:
IF DLG% <> EXITSUCCESS OR LE